如果您已經(jīng)讀到這里,我假設(shè)您已經(jīng)知道定期備份 MongoDB 數(shù)據(jù)庫(kù)以防止任何數(shù)據(jù)丟失的重要性。許多人主要關(guān)心的是決定將這些備份保存在何處,尤其是在處理需要大量存儲(chǔ)空間的大型數(shù)據(jù)庫(kù)時(shí)。對(duì)象存儲(chǔ)因其可擴(kuò)展性和成本效益而成為強(qiáng)烈推薦的解決方案。
本文將演示如何使用命令行執(zhí)行MongoDB 數(shù)據(jù)庫(kù)的備份并將它們存儲(chǔ)在與Contabo S3 兼容的對(duì)象存儲(chǔ)中。這是可以實(shí)現(xiàn)的原因是因?yàn)?Contabo 對(duì)象存儲(chǔ)與 Amazon Web Services 命令行界面 (AWS CLI) 兼容。
您可能會(huì)注意到本指南比在線提供的其他指南短得多,但這是因?yàn)槭褂?AWS CLI 配置 Contabo 對(duì)象存儲(chǔ)很容易。此外,S3 兼容性允許將備份文件從 Linux 服務(wù)器簡(jiǎn)單地傳輸?shù)綄?duì)象存儲(chǔ)。如果您不熟悉 Contabo 對(duì)象存儲(chǔ),可以單擊此處了解更多信息。
為了執(zhí)行 MongoDB 數(shù)據(jù)庫(kù)的備份,需要以下內(nèi)容:
先決條件/要求
要執(zhí)行 MongoDB 數(shù)據(jù)庫(kù)的備份,您需要以下內(nèi)容:
- 兼容 S3 的對(duì)象存儲(chǔ)
- 您的訪問(wèn)密鑰
- 你的秘鑰
- 您的 S3 網(wǎng)址
- AWS CLI 已經(jīng)安裝(并配置)在運(yùn)行 MongoDB 數(shù)據(jù)庫(kù)的服務(wù)器上
如果您在服務(wù)器上安裝和配置 AWS CLI 時(shí)需要幫助,您可以參考此鏈接提供的文檔。
創(chuàng)建數(shù)據(jù)庫(kù)的備份
要將您的 MongoDB 數(shù)據(jù)庫(kù)備份傳輸?shù)侥膶?duì)象存儲(chǔ),您必須首先創(chuàng)建一個(gè)本地備份。幸運(yùn)的是,這可以使用 MongoDB 的內(nèi)置命令來(lái)實(shí)現(xiàn):
mysqldump –u [username] -p[password] [database_name] > backup.sql
此過(guò)程的持續(xù)時(shí)間將根據(jù)數(shù)據(jù)庫(kù)的大小而有所不同。您應(yīng)該將[username]和[password]替換為您的 MongoDB 實(shí)例的登錄憑據(jù),并將[database_name]替換為您希望備份的特定數(shù)據(jù)庫(kù)的名稱(chēng)。文件名“?backup.sql?”表示備份文件的名稱(chēng),但如果您愿意,可以選擇不同的名稱(chēng)。
上傳您的數(shù)據(jù)庫(kù)備份
使用后續(xù)命令將本地創(chuàng)建的數(shù)據(jù)庫(kù)備份傳輸?shù)?Contabo 對(duì)象存儲(chǔ):
aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用 Cron 計(jì)劃定期數(shù)據(jù)庫(kù)備份
要為特定數(shù)據(jù)庫(kù)設(shè)置定期備份,您必須完成兩項(xiàng)任務(wù):
1. 創(chuàng)建一個(gè) Shell 腳本
初始步驟涉及創(chuàng)建一個(gè) shell 腳本,該腳本生成指定數(shù)據(jù)庫(kù)的本地備份,然后使用 AWS CLI 將其傳輸?shù)?Contabo Object Storage。
要?jiǎng)?chuàng)建此腳本,請(qǐng)使用以下命令:
nano 數(shù)據(jù)庫(kù)到 os.sh
并添加以下內(nèi)容:
#!/bin/bash mysqldump –u [username] -p[password] [database_name] > backup.sql aws --profile eu2 --region default --endpoint-url [your_s3_url] s3 cp [name_of_your_backup_file] s3://[bucket_name]
使用[CTRL]?+?O保存腳本并使用[CTRL]?+?X??退出編輯器
現(xiàn)在使用此命令使腳本可執(zhí)行:
chmod +x database-to-os.sh
2.編輯crontab文件
現(xiàn)在打開(kāi) Crontab 文件,您可以在其中使用以下命令安排備份:
crontab -e
并粘貼以下內(nèi)容:
0 3 * * * /[path_to_script]/databse-to-os.sh
該腳本被編程為每天凌晨 3:00執(zhí)行數(shù)據(jù)庫(kù)備份。如果您喜歡不同的時(shí)間表,您可以相應(yīng)地修改腳本。有關(guān) Cron 語(yǔ)法的其他信息可以在文件本身中找到。
結(jié)論
總之,使用 AWS CLI 將 MongoDB 數(shù)據(jù)庫(kù)備份到對(duì)象存儲(chǔ)是一種直接有效的方法,可以為有價(jià)值的數(shù)據(jù)增加額外的安全層。通過(guò)使用 AWS CLI 和本文提供的命令,用戶(hù)可以高效地自動(dòng)執(zhí)行備份過(guò)程、安排定期備份并將備份安全地存儲(chǔ)在對(duì)象存儲(chǔ)中。